"""
数据分析案例步骤1-文件读取
1.设计一个类，完成数据封装
2.设计一个抽象类，完成文件读取
3.设计一个类，完成文本文件读取
4.设计一个类，完成JSON文件读取
5.进行数据需求的逻辑计算(计算每一天的销售额)
6.通过 pyecharts 进行数据可视化
"""
from pyecharts.options import LabelOpts, LineStyleOpts

from file_define import TextReader, JSONReader
from data_define import Record
from pyecharts.options import *
from pyecharts.charts import Bar
from pyecharts.globals import ThemeType


text_file_reader = TextReader('2011年1月销售数据.txt')
jan_records = text_file_reader.read()
json_file_reader = JSONReader('2011年2月销售数据JSON.txt')
feb_records = json_file_reader.read()
all_records = jan_records + feb_records
print(f"一共有{len(all_records)}条销售记录")
data_dict = {}
for record in all_records:
    if record.date in data_dict.keys():
        data_dict[record.date] += record.amount
    else:
        data_dict[record.date] = record.amount


# 可视化开发
bar = Bar(init_opts=InitOpts(theme=ThemeType.LIGHT))
bar.add_xaxis(list(data_dict.keys()))
bar.add_yaxis("销售额",list(data_dict.values()),
                            label_opts=LabelOpts(is_show=False,position="top"))

bar.set_global_opts(
    title_opts=TitleOpts(title="2011年1-2月每日销售额",
                        pos_left="left",
                        pos_top="top",
                        pos_bottom="1%"),
    legend_opts=LegendOpts(is_show=True),# 显示图例
    toolbox_opts=ToolboxOpts(is_show=True),
    visualmap_opts=VisualMapOpts(is_show=True),
)

bar.render("2011年1-2月每日销售额.html")
